package gat.dto.res.tg;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.bitsun.core.framwork.api.dto.IResponseDto;
import com.fasterxml.jackson.annotation.JsonProperty;
import gat.dto.res.tg.excel.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.validation.annotation.Validated;

import java.time.LocalDateTime;

/**
 * 
 * @Author: yanshukeji-java
 * @Email: yanshukeji-java
 */
@Validated
@AllArgsConstructor
@NoArgsConstructor
@Data
@ApiModel
public class AccountOrderResDto  implements IResponseDto{
    private static final long serialVersionUID = 1L;


/**
 * 主键 BIGINT
 */
@ApiModelProperty(value = "主键")
@JsonProperty(index = 0)
@ExcelIgnore
private Long id;
/**
 * 订单号 VARCHAR
 */
@ApiModelProperty(value = "订单号")
@JsonProperty(index = 10)
@ExcelProperty(value = "订单号", order = 1)
private String orderNo;
/**
 * 订单金额 BIGINT
 */
@ApiModelProperty(value = "订单金额")
@JsonProperty(index = 20)
@ExcelProperty(value = "订单金额",converter =  OrderPriceConverter.class, order = 1)
private Long orderAmount;
/**
 * 订单状态 INT
 */
@ApiModelProperty(value = "订单状态")
@JsonProperty(index = 30)
@ExcelProperty(value = "订单号", converter =  OrderStatusConverter.class, order = 1)
private Integer orderStatus;
/**
 * 订单随机金额 BIGINT
 */
@ApiModelProperty(value = "订单随机金额")
@JsonProperty(index = 40)
@ExcelProperty(value = "订单随机金额",  converter =  OrderPriceConverter.class, order = 1)

private Long orderRandomAmount;
/**
 * 购买账号厂商 VARCHAR
 */
@ApiModelProperty(value = "购买账号厂商")
@JsonProperty(index = 50)
@ExcelProperty(value = "购买账号厂商", converter = SupplierConverter.class, order = 1)
private String accountSupplier;
/**
 * 账号id VARCHAR
 */
@ApiModelProperty(value = "账号id")
@JsonProperty(index = 60)
@ExcelProperty(value = "账号id", order = 1)
private String accountId;
/**
 * 订单类型 分配账号订单 充值订单 INT
 */
@ApiModelProperty(value = "订单类型 分配账号订单 充值订单")
@JsonProperty(index = 70)
@ExcelProperty(value = "订单类型", converter = OrderTypeConverter.class, order = 1)
private Integer orderType;
/**
 * 创建时间 TIMESTAMP
 */
@ApiModelProperty(value = "创建时间")
@JsonProperty(index = 80)
@ExcelProperty(value = "创建时间", order = 1)
private LocalDateTime createTime;
/**
 * 支付时间 TIMESTAMP
 */
@ApiModelProperty(value = "支付时间")
@JsonProperty(index = 90)
@ExcelProperty(value = "支付时间", order = 1)
private LocalDateTime payTime;
/**
 * 会话id VARCHAR
 */
@ApiModelProperty(value = "会话id")
@JsonProperty(index = 100)
@ExcelIgnore
private String chatId;
/**
 * tg用户id VARCHAR
 */
@ApiModelProperty(value = "tg用户id")
@JsonProperty(index = 110)
@ExcelIgnore
private String tgUserId;
/**
 * tg用户名 VARCHAR
 */
@ApiModelProperty(value = "tg用户名")
@JsonProperty(index = 120)
@ExcelProperty(value = "tg用户名", order = 1)
private String tgUserName;
/**
 * 会话类型 VARCHAR
 */
@ApiModelProperty(value = "会话类型")
@JsonProperty(index = 130)
@ExcelProperty(value = "会话类型", converter = ChatTypeConverter.class, order = 1)
private String chatType;
/**
 * 主账号id VARCHAR
 */
@ApiModelProperty(value = "主账号id")
@JsonProperty(index = 140)
@ExcelIgnore
private String primaryUid;


    @ApiModelProperty(value = "botId")
    @JsonProperty(index = 140)
    @ExcelProperty(value = "bot名称", order = 1)
    private String botId;

    // 折扣
    @ApiModelProperty(value = "折扣")
    @JsonProperty(index = 140)
    @ExcelProperty(value = "折扣", converter =  OrderDiscountConverter.class,order = 1)
    private Long discount;

    // 原价
    @ApiModelProperty(value = "原价")
    @JsonProperty(index = 140)
    @ExcelProperty(value = "原价", converter =  OrderPriceConverter.class,order = 1)
    private Long originalPrice;
}






